Phone to phone data exchange

ABSTRACT

An information management system for operation over a network includes a first mobile device having a first application module, the first mobile device operating over the network and in communication with a second mobile device having a second application module, a first operating system residing on the first mobile device configured to detect a communication event between the first mobile device and the second mobile device, and an address book module residing on the second mobile device. The first application module is configured to send information associated with the first mobile device to the second mobile device in association with a detection of the communication event.

RELATED APPLICATIONS

This application is divisional of U.S. Ser. No. 11/540,820, filed Sep.28, 2006, which is a continuation-in-part of U.S. Ser. No. 11/353,452,filed on Feb. 13, 2006, which is a continuation-in-part of U.S. Ser. No.11/056,022, filed on Feb. 11, 2005, which is a continuation-in-part ofU.S. patent application Ser. No. 10/879,331, filed Jun. 29, 2004, whichis a continuation-in-part of U.S. patent application Ser. No.10/657,757, filed Sep. 8, 2003, which is a continuation of U.S. patentapplication Ser. No. 09/223,129, filed Dec. 30, 1998, now U.S. Pat. No.6,374,259, which claims priority from U.S. Ser. No. 60/102,614, filedOct. 1, 1998 (Abandoned), each of which is incorporated herein byreference.

BACKGROUND OF INVENTION

The phonebook plays a significant role in mobile communications. It isthe source of the contact information for phone calls, text messages,faxes, instant messages and emails. A challenge in the mobile phonemarket is inserting, updating, and maintaining contact informationstored in the phonebook. Currently, one must manually enter anotherperson's contact information into one's mobile phone. This takes time,is often difficult with such small buttons and screens on phones, and isprone to errors with manual data entry. Often, the result is that manyindividuals do not enter contact information into their mobilephonebooks.

In addition, these problems restrict the user from adding alternatephone numbers (e.g. business phone, home phone, and fax) associated witha contact, even though today's phonebooks can support multiple numbers.With the growth of more sophisticated phones (e.g. Smart Phones, IPphones, and Internet capable phones) there is also a need to store emailaddresses and Instant Message (IM) addresses of contacts. Entering emailand IM addresses, however, can be even more problematic than enteringphone numbers.

Another problem for users today is the inability to control thedistribution of contact information to others. For example, one mightprovide a mobile phone number or business telephone number to anotherperson but not want to provide their home telephone number. Thus, userscontinue to face many problems in using and benefiting from thecapabilities of a device phonebook.

A few mobile phones contain a profile that acts as an electronicbusiness card or vcard. The subscriber must locate the profile withinhis or her mobile phone and manually enter all of their contactinformation. The profile is then stored in the mobile phone's memory. Ifthe subscriber wants to send their vcard to another person, both thesender and the receiver must have vcard compatibility on their mobilephones. If both mobile phones are vcard compatible, then the firstsubscriber can manually send his or her profile to the second subscribervia an SMS. Not only is this a manual and complex process, but it maybecome difficult to remember to whom the subscriber has sent theircontact information. In addition, most subscribers don't even knowwhether their mobile phones have this capability. In general, similarfunctionalities are buried within the many layers of settings and smallscreens of the mobile phones.

SUMMARY OF THE INVENTION

Embodiments of the invention provide systems, methods, and deviceenhancements to automatically send, insert, exchange and update acaller's contact information into a user's phonebook. The phonebook canreside on either the UICC card (Subscriber Interface module (“SIM”),USIM, Mega SIM, any other smart card or an integrated chip), on themobile device or on a remote server, for example. The automatic send andinsert and/or automatic exchange mechanism is triggered when acommunication happens (phone call, SMS interaction or email) between twomobile phones or other devices. Upon communication completion, a calleris asked if the caller wants to send his or her contact information to acommunication recipient. If yes, the information is automatically sentto the recipient, based upon the permission levels provided by thesender, or caller. On the other end, the recipient of the contactinformation has the option of inserting the information on his or herdevice.

In general, in an aspect, the invention provides an informationmanagement system for operation over a network. The system includes afirst mobile device having a first application module, the first mobiledevice operating over the network and in communication with a secondmobile device having a second application module, a first operatingsystem residing on the first mobile device configured to detect acommunication event between the first mobile device and the secondmobile device, and an address book module residing on the second mobiledevice. The first application module is configured to send informationassociated with the first mobile device to the second mobile device inassociation with a detection of the communication event.

Implementations of the invention may include one or more of thefollowing features. The first mobile device can be configured to prompta first user to enter information for storage in the first applicationmodule of the first mobile device. The second application module can betriggered to permit insertion of information transmitted via thecommunication event into the address book module. The first applicationmodule can be configured to prompt the first mobile device to sendinformation stored in the first mobile device to the second mobiledevice. The second application module can be configured to prompt a userof the second mobile device to insert the information associated withthe first mobile device into the address book module. The firstapplication module and the second application module can exchangeinformation associated with a first user.

Implementations of the invention may further include one or more of thefollowing features. The first application module can be configured todetect a communication event in at least one of the first mobile deviceor the second mobile device. The information management system caninclude an address book module residing on the first mobile device. Theapplication module can be configured to determine a frequency of thecommunication between the first mobile device and the second mobiledevice. When the frequency of the communication between the first mobiledevice and the second mobile device exceeds a threshold, the applicationmodule can be configured to send an updated information message to thesecond mobile device. The first application module can be configured toupdate information stored in the first mobile device. The firstapplication module can be configured to prompt a first user to send theupdated information to the second mobile device for automatic insertioninto the address book module. The first application module can beconfigured to automatically provide updated information to contactsstored in the first mobile device. The first application module can beconfigured to allow entry of a permission level for the informationstored in the first mobile device. The first application module can beconfigured to send information associated with the first mobile devicethat corresponds to the permission level to the second mobile device.The first application module can be configured to store the permissionlevel that corresponds to the second mobile device. The firstapplication module can be configured to store a sent record to indicatea time of sent data, a destination number and a permission level.

In general, in another aspect, the invention provides a mobile deviceconfigured to receive information communicated over a network. Themobile device includes an application module residing on a mobile deviceand configured to detect an incoming communication sent to the mobiledevice over the network, and a phonebook module residing on the mobiledevice and configured to store information contained in the incomingcommunication received by the mobile device. The application moduledetects the incoming communication and the application module istriggered to provide an option of storing information contained in theincoming communication in the phonebook module.

Implementation of the invention may include one or more of the followingfeatures. The incoming communication can comprise a SMS message receivedby the mobile device. The application module can be configured to prompta first user of the mobile device for entry of the information or toupdate the information contained in the incoming communication. Thedevice can include an operating system module, wherein the phonebookmodule resides on the operating system module. The application modulecan be configured to detect a call identifier of the communication todetermine whether the calling number is a mobile device call identifier.

Features of the invention may provide one or more of the followingcapabilities. The process may alleviate storage issues and processingpower issues. The system and processes of the invention assist in theintegration issues of a Mobile Operator Network. Exchange of informationbetween users on a network can be automated. Updates to informationstored on a mobile device can be achieved automatically, or with manualentry by choice. The invention can memorize the phone numbers ofsubscribers that received a user's contact information. Othercapabilities will be apparent upon review of the following figures anddescription.

FIGURES

FIG. 1 is a schematic of a communication system according to oneembodiment of the invention.

FIG. 2 is a schematic diagram of a mobile contact information managementsystem according to one embodiment of the invention.

FIG. 3A is a schematic of portions of an application module that arebuilt into a phone operating system.

FIG. 3B-3C is a flow chart of an operation of a user device applicationmodule.

FIG. 4A-4C is a flow chart of an application module activation processby the user device.

FIGS. 5A-5F are data flow charts of subsystems of triggering the userapplication module over a wireless network.

FIGS. 6A-6H are data flow charts of subsystems of an informationexchange routine.

FIGS. 7A-7H are data flow charts of subsystems of manual operation of aninformation exchange routine over a communication system.

DETAIL DESCRIPTION OF THE INVENTION

Embodiments of the present invention are directed generally to a methodand an apparatus for inserting, exchanging, updating and storing contactinformation in a mobile phone used over a mobile network. Embodiments ofthe invention can be used to send, insert, exchange, update or storeinformation other than, or in addition to, contact information. Furtherembodiments of the invention can be used for devices other than mobilephones and over networks other than mobile networks. Implementations ofthe invention are described as employing a Mobile phone operatingsystem.

Referring to FIG. 1, a mobile contact management information system 1000includes a first user phone 1010, a second user phone 1012, and a MobileOperator-Over-The-Air (OTA) Communication Platform 1014 on a MobileOperator's Network 1016. The contact management information system 1000is an UMTS mobile operator network, for example. The system 1000 can beanother type of mobile network, such as WCDMA (GSM), CDMA, CDMA2000 or anext generation phone system.

Referring to FIG. 2, a mobile contact management information system 2000includes a first user device (first user phone) 2010, a second userdevice (second user phone) 2050, an OTA communication platform 2001, aremote computer 2003, and a remote database server 2005. The remotecomputer 2003 and the remote database 2005 can be a part of the mobileoperator network, for example. The remote computer 2003 is coupled tothe remote database 2005. The first user device 2010 and the second userdevice 2050 are connected to the OTA platform 2001. The OTA platform2001 connects the first user device 2010 and the second user device 2050to the remote computer 2003 and the remote database server 2005 over themobile network.

The first user phone 2010 includes a phone operating system 2011 and aUICC card 2030. The phone operating system 2011 includes a phone eventmanagement module 2014, a phonebook module 2015, an SMS module 2016, adisplay module 2017, and a CallerXchange application module 2090. Thephone operating system may include other modules. The phone operatingsystem 2011 stores information, such as a first user last call time datafile 2034, a first user MyProfile data file 2035, a first user callcounter 2036, a first user last number dialed (LND) data file 2037, afirst user last SMS sent time data file 2038, a first user updateexchange log file 2033 and a first user configuration data file 2039.The information can be stored in a database. The files 2034, 2035, 2036,2037, 2038 and 2039 can be edited locally or remotely via an OTA update.

The second user phone 2050 includes an UICC card 2080 and a phoneoperating system 2051. The phone operating system 2051 includes a phoneevent management module 2054, a phonebook module 2055, a SMS module2056, a display module 2057, and a CallerXchange application module2091. The phone operating system may include other modules. The phoneoperating system 2051 also stores information, such as a second userlast call time data file 2084, a second user MyProfile data file 2085, asecond user call counter 2086, a second user last number dialed (LND)data file 2087, a second user last SMS sent time data file 2088, asecond user update exchange log file 2083 and a second userconfiguration data file 2089. The information can be stored in adatabase format. The files 2084, 2085, 2086, 2087, 2088 and 2089 can beedited locally or remotely via an OTA update.

The UICC cards 2030 and 2080 are integrated into the respective phoneand phone operating system software for each of the first user phone2010 and the second user phone 2050. The UICC card 2030 and the UICCcard 2080 enable the first user device 2010 and the second user device2050 to access the remote server 2003 and the remote database 2005 overthe mobile network, OTA platform 2001 and the phone operator network.The CallerXchange application modules 2090 and 2091 are installed oneach respective phone's operating system or can be programmed into thefirmware of each phone.

The CallerXchange application module 2090 and the phonebook modules 2015of the first user device 2010 can be combined such that both aredeployed as a single software program. The CallerXchange applicationmodule 2091 and the phonebook module 2055 of the second user device 2050can be combined such that both are deployed as a single softwareprogram. The UICC cards 2030 and 2080 can be a different type ofinformation storage and execution medium such as a communication chip ora variation of a UICC or Smart Card. The UICC cards 2030 and 2080 can beanother integrated smart card or chip within a phone. The phonebookmodules 2015, 2055 may be replaced with another type of file or softwareprogram to manage the contact entries and other personalized items.

The CallerXchange application modules 2090 and 2091 are saved on thefirst user device operating system 2011 and the second user deviceoperating system 2051, respectively. The modules 2090 and 2091 listenfor communication-related events, send requests to other phones, receivecaller information, and insert contact information into the phonebookmodules 2015 and 2055. Additional features can include: softwareactivation, personal information update, default access level setting,phonebook backup and restore. The application module 2090 is compatiblewith 2G and 3G specifications. The application module 2090 is built onthe phone operating system. The application module 2090, 2091 supportsSymbian operating system versions 6.0. 7.0, 8.0 and 9.0, for example,although the same application can be deployed on any operating systemand/or firmware. The application module 2090 communicates directly withthe application module 2091 via remote server 2003 and remote database2005 through GPRS, SMS, MMS, TCP/IP, Infrared, Near Field Communicationor other communication technologies. When the application module 2090 or2091 is activated within the phone operating system, the memoryfootprint is approximately 100 k. Other memory requirements and storagecapacity are possible and envisioned. Further, although functionality isdiscussed with respect to the first user device 2010, similarfunctionality is available and installed on the second user device 2050.

Referring also to FIG. 3A, the application module 2090 is configured touse the Events and Commands on the phone operating system 2011. Theapplication module 2090 communicates to the first user device 2010through the Event Communication module 2014. The phone operating system2011 runs a command for a display form 3105, a change focus 3110, anavigate in form 3115, a select button 3120, a select item option 3125,a show dialog 3130, a send SMS 3135, and a get input command 3140. ASetup Event List command 3180 and a Setup Menu command 3185 areproactive commands issued through the phone operating system 2011. Thephone operating system 2011 registers with the following events of thefirst user device 2010: a Call Event 3150, a Menu Selection Event 3160,a Menu Event 3165, an SMS Event 3170, and a Terminal Profile DownloadEvent 3175.

Referring also to FIG. 3B, the application module 2090 is configured tostart a routine within the phone operating system 2011. The phoneoperating system 2011 is turned on within the first user device 2010. Atstage 3205, a new thread is started and the application module 2090 isconfigured to check if the PIN entered into the SIM at stage 3215 iscorrect. If the PIN is not entered, the application module 2090 waitsfor the PIN to be entered, stage 3220. When the PIN is properly enteredthe application module 2090 starts the Watchdog Process, at stage 3225(see FIG. 3C and associated description). The second user applicationmodule 2091 uses substantially the same process within the phoneoperating system 2051 to start the application module 2091 routine.

Referring also to FIG. 3C, the first user phone operating system 2011checks if the application module 2090 is running, at stage 3310. If theapplication module 2090 is running, at stage 3305, the system waits forthe application module 2090 to complete the run process. If theapplication module 2090 is not running, the phone operating system 2011proceeds to stage 3320 where the application is started. At stage 3325,the application is sent to the background and returns to stage 3305 towait for the next event. Similarly, the second user application module2091 uses substantially the same process within the phone operatingsystem 2051, and waits for the next event.

Referring to FIG. 4A, the first user application module 2090 isactivated by the first user. The first user phone 2010 is turned on andthe application module 2090 is triggered, at stage 4105. At stage 4110,the application module 2090 determines if the MyProfile data is valid(see FIG. 4B and associated description). If the information is correct,The application module 2090 waits for a User Event, SMS, or Call Event,at stage 4130. If MyProfile data is not valid or is incomplete, then atstage 4120 the application module 2090 prompts the first user tocomplete the MyProfile information by selecting the Edit MyProfilescreen, at stage 4125 (see FIG. 4B and associated description).

Referring to FIG. 4B, at stage 4205, the first user is asked to setupthe first user MyProfile data file 1035 by entering each field of his orher contact information in a sequential manner. The first user MyProfiledata file 2035, in conjunction with the application module 2090 enablesthe first user to send his or her contact information to others. Thestandard fields of contact information include fields for a Name, MobilePhone Number, Business Phone Number, a Home Phone Number and an emailaddress. In each entry, at stage 4215, the first user application module2090 waits for the user input and collects the data through a Get InputProactive Command 3140. At stage 4230, the first user application module2090 validates if the user data is in a valid format. At stage 4225, thefirst user is asked if the information is correct, and the correctinformation is saved at stage 4235. If the information is not in aproper format, an error message is displayed at stage 4245. The firstuser is prompted to make a new entry at stage 4215.

The first user can manually navigate to the settings menu and edit theMyProfile data in order to update their contact information on theapplication module 2090. Once the first user is finished updating theMyProfile data, the application module 2090 prompts the user to choosewhether or not they want to send a broadcast update to those whopreviously received the information. For instance, if the first useroriginally opted to send the second user his/her “Business” contactinformation and the first user updates their “Personal” contactinformation, the first user would only be prompted to send a broadcastupdate to those users who he/she originally sent the “Personal” contactinformation to, and not to the second user. If the first user opts notto send the broadcast update, the first user is prompted to send his/herupdated information to those contacts who were originally sent the levelof contact information after the next communication event. Thedestination numbers and permission levels associated with each of theusers are stored within the first user exchange log file 2033.

In general, phone numbers entered match an International numbers schemeaccording to the International Dialing Rules. The format of the numbersis validated at stage 4255 (see FIG. 4C and accompanying description).For demonstration purposes, the standard fields of contact informationare Name, Office Phone, and Home Phone. Other fields of data may beentered after the initial set up process, such as “Email” or “InstantMessenger”. The contact data fields can be limited to the standardfields, but may include other fields. The users have the option ofchanging these designations at any time by accessing the applicationmodules 2090 and 2091. The application module updates the MyProfile DataFile 2035 for the first user and the MyProfile Data File 2085 for thesecond user (see FIG. 7A and associated description).

Referring also to FIG. 4C, the first user application module 2090 checksif the entered contact phone numbers are in the correct InternationalFormat and detects if the number dialed is a mobile line. Each time thefirst user is asked to enter a phone number (Mobile, Work and Home), theCallerXchange application module 2090 validates whether the enterednumbers matches international numbering format (e.g., +15088368810 forthe U.S.) and whether the number dialed is a mobile line, stage 4305.The dialing rules are customized per operator and include a mandatoryInternational Direct Dialing (IDD) value, a mandatory Country Codevalue, a mandatory National Direct Dialing (NDD) prefix value andoptional Mobile prefixes values. The rules can assist the mobile linedetection process. If the formatting is correct, the process terminatesat stage 4325. If the formatting is incorrect, the application module2090 appends the International Direct Dialing (IDD) and the NationalDirect Dialing (NDD) code to the numbers, stage 4315.

The configurable feature mobile line detection uses a pre-determineddialing scheme to determine whether the dialed number is a fixed line ora mobile number. If it is a fixed line, then CallerXchange does not askthe subscriber to send MyProfile. This functionality is dependent uponthe geographical region having a differentiating dialing scheme forfixed or mobile lines. The application module 2090 checks if the numberis dialed with a “+” sign. If the number is dialed with a “+” sign, thenthe application module 2090 checks if the Country Code matches the onedefined in the dialing rules. If the Country Code matches, then theapplication module 2090 checks if any of the mobile prefixes defined inthe configuration match the prefix in the dialed number. If yes, then alocal mobile number is detected. If no, then a local fixed line isdetected. If the Country Code doesn't match, then an internationalnumber is detected. If the number is not dialed with a “+” sign then theapplication module 2090 checks if the International Direct Dialing (IDD)matches the one defined in the dialing rules. If the IDD matches the onein the dialing rules, then the Country Code is checked to see if itmatches the one defined in the dialing rules. If it is, the applicationmodule 2090 checks if any of the mobile prefixes defined in theconfiguration match the prefix in the dialed number. If yes, a localmobile number is detected. If no, a local fixed line is detected. If theCountry Code does not match the one defined in the dialing rules, thenan international number is detected. If the IDD does not match the onedefined in the dialing rules, then the number is unknown. The NationalDirect Dialing (NDD) prefix is skipped automatically if it matches theone defined in the dialing rules. CallerXchange asks the “Send” questionafter a dialed number that is defined as a mobile number or is aninternational number. CallerXchange can be configured to not ask the“Send” question after an international number is dialed. Theconfirmation is displayed to the user using the Show Dialog ProactiveCommand 3130. Once the confirmation is displayed, the process isterminated, at stage 4325. After the numbers input by the user arechecked to fit to International Formats, the numbers are stored withinthe first user MyProfile Data File 2035.

Referring to FIG. 5A, the first user application module 2090 istriggered over the mobile phone 2010 and the phone operating system2011. The first user phone is in an idle state, at stage 5005. The firstuser device waits for one of the following events to occur: SMS Event5015, Call Event 5020 or a User Event 5025. The first user device maysend or receive an SMS (see FIG. 5G and associated description), make anoutgoing call (see FIG. 5B and associated description), or manuallynavigate through the menu (see FIG. 7E and associated description) whichtriggers the first user application module 2090.

Referring to FIG. 5B, the first user application module 2090 isinitiated over the mobile phone 2010 and the phone operating system2011. The first user makes a phone call to the second user. A Call EventProactive Command 3150 has occurred. The first user application module2090 is triggered and waits for the next event. A Call Event 3150 occursand the application module checks the type of Call Event, at stage 5105.The application module 2090 is configured to determine if theapplication has been disabled by the first user within the SettingsMenu. If it is set to a “Disable” state, then the first user applicationmodule 2090 is sent to stage 5135 and the application module 2090 isconfigured to update the Exchange Log (see FIG. 6H and associateddescription). The application module 2090 returns to an original stateand waits for the next User Event, SMS or Call Event.

At stage 5110, the first user application module 2090 determines if theapplication module 2090 is set to an “Enable” state. If the applet is inthe “Enable” state, the first user application module 2090 retrieves thephone number of the second user mobile phone 2050 from the call event3150. At stage 5115, the first user application module 2090 detects thenumber, number type and call direction. If the number is a listednational mobile number, the application module 2090 sets the appletstate as a “Call Event Happened,” stage 5125. The first user applicationmodule 2090 determines if the call was incoming or outgoing, at stage5130. If the call was outgoing the Check Send Necessary process istriggered (see FIG. 5F and associated description). If it is determinedthat a Send operation is necessary, the application performs a Sendoperation at stage 5145 (see FIG. 5C and associated description), anUpdates Exchange Log operation at stage 5135 (see FIG. 6H and associateddescription), and returns to a rest state to await a User Event, SMS orCall Event. If the Send operation is not necessary, the applicationperforms an Updates Exchange Log operation at stage 5135 (see FIG. 6Hand associated description) and returns to a rest state to await thenext User Event, SMS or Call Event. If the dialed number is a“non-mobile” number, then the first user application module 2090proceeds to the Updates Exchange Log operation (see FIG. 6H andassociated description) and returns to a rest state to await the nextUser Event, SMS or Call Event. At stage 5105, if an incoming call isidentified, the applet returns to a rest state and waits for the nextUser Event, SMS or Call Event.

Referring to FIG. 5C, the first user contact information is sent, viathe application module 2090, over the mobile phone 2010 and the phoneoperating system 2011 to the second user mobile phone 2050. At stage5205, the first user application module 2090 checks if the first userMyProfile Data File 2035 is complete and valid. If it is not, theapplication prompts the user to enter the MyProfile data by goingthrough the Edit MyProfile process (see FIG. 4B and associateddescription). At stage 5210, if the first user MyProfile Data File 2035is complete and valid, the first user application module 2090 performs aRoaming Detection (see FIG. 5D and associated description). At stage5215, if the roaming restriction applies, the application proceeds tostage 5250. If there are no roaming restrictions in place, at stage5215, the first user application module 2090 triggers a question to theDisplay Control module 2017: “Send My Profile?” If the first userselects the Send option, the Show Selection List 5235 is displayed onthe phone of the first user, where he or she is prompted to select oneof five levels of permission: “Personal,” “Business,” “Mobile Only,”“All,” “Do not Send” or “Settings.” If the first user selects “Do notSend” or decides to cancel the action, the application module 2090 doesnot prompt any other questions and proceeds to stage 5250. The firstuser application module 2090 stores the permission level associated withthe second user, within the first user exchange log file 2033.

If the first user selects “Settings,” then the application module 2090displays a Settings Menu to make modifications to MyProfile or toDisable/Enable the Send and Add Features (see FIG. 7C and associateddescription). If the first user selects one of the other permissionlevels (e.g., “Personal,” “Business,” “Mobile Only,” “All”), then thefirst user application module 2090 creates a “Send MyProfile” SMS, atstage 5245 (see FIG. 5E and associated description). The applicationmodule 2090 stores the permission level that the first user chose forinformation sent to the second user phone 1012. The application module2090 alerts the first user of the additional charges that may occur as aresult of the exchanging of contact information using SMS. When thefirst user chooses to send his or her contact information for the firsttime, the first user is notified by the following message: “You aregoing to send SMS, are you sure you want to continue?”, or some suchindication or message. The notification is made once, and if the firstuser either accepts or rejects sending SMS the first time thenotification is made, this message may not be displayed for subsequentSMS communication events. At stage 5250, the first user applicationmodule 2090 goes back to its original state and waits for the next UserEvent, SMS or Call Event.

Referring to FIG. 5D, the first user application module 2090 activatesthe roaming detection at stages 5210 and 5305, and the first userapplication module 2090 gets a Mobile Country Code (MCC) at stage 5305from the phone 2010. At stage 5310, if the current MCC matches the firstuser's MCC, the roaming restriction does not apply. At stage 5310, ifthe current MCC does not match the first user's MCC, then, at stage5315, the first user application module 2090 checks the number dialedwith the International Country Code. If the number was dialed with theInternational Country Code, the roaming restriction does not apply. Ifthe International Country Code is not dialed, at stage 5315, thenroaming restrictions apply and the application returns to its originalstate and waits for the next User Event, SMS or Call Event.

Referring to FIG. 5E, the first user application module 2090 sends thefirst user contact information in an SMS. At stage 5405, if the firstuser selects the “Personal” option, a confirmation message is displayedon the first user display module 2017 through the Show Dialog ProactiveCommand 3130: “Sending MyProfile SMS . . . ” At stage 5420, an SMSmessage is sent that contains, for example, first name, last name,mobile and home data fields specified in MyProfile. If the first userselects the “Business” option, then a confirmation message is displayed:“Sending MyProfile SMS . . . ” and the SMS message is sent and containsfirst name, last name, mobile and business data fields specified inMyProfile. If the first user selects the “Both” option, a confirmationmessage is displayed: “Sending MyProfile SMS . . . ” and the SMS messageis sent and contains first name, last name, mobile, home and businessdata fields specified in the MyProfile Data File 2035.

Referring to FIG. 5F, in order to avoid the repetition of the question“Send MyProfile?” for the same dialed number, the application module2090 remembers the numbers (stored in Last Number Dialed Data File 2037)and dates (stored in Last Call Time Data File 2034) to which the userpreviously sent MyProfile information. This information is stored withinthe memory of the first user phone 2010. Within the Settings Menu theuser can determine the preset time limit to remind him or her to send anupdated MyProfile to those listed within this database. At calltermination, the application module 2090 fetches the record (the seconduser device number) from the contact exchange database, at stage 5510.If the record exists in the database, the application checks if the LastCall Time is within the present time frame, at stage 5520. If the LastCall Time is within that limit, then the application module 2090 goesback to its original state and waits for the next User Event, SMS orCall Event. If the Last Call Time is outside of the time frame or if therecord does not exist in the database, then the application continues toperform Send, (see stage 5145 in FIG. 5B and associated description).

Referring to FIG. 6A, contact information is inserted into the seconduser phonebook module 2055. The second user application module 2091communicates with and receives the first user contact information andinserts the information into the second user phonebook module 2055.Contact exchange occurs between the first user and the second user via anetwork. The second user application module 2091 communicates, packagesand sends the second user contact information to the first user. At thecompletion of a mode of communication, the first user chooses to sendhis or her contact information. The second user completes activation ofthe second user application module 2091, preferably prior to the firstuser sending the first user contact information to the second user.Referring also to FIG. 2, the first user SMS message travels through theOTA Platform 2001 and the Mobile Operator SMS-C Center 2040. The seconduser phone 2050 receives a SMS message that contains the first usercontact information. The incoming SMS triggers the second userapplication module 2091.

Referring to FIG. 6B, once the second user receives a SMS, theapplication module 2091 determines if the event type is an SMS ChangedEvent 6120 (see FIG. 6D and associated description) or an SMS CreatedEvent 6125 (see FIG. 6C and associated description). If the event typeis neither changed nor created, the application module 2091 returns toits original state and waits for a next User Event, SMS or Call Event.

Referring to FIG. 6C, when a SMS is created at stage 6210 theapplication module 2091 collects the Folder ID of the event. At stage6215, the application module 2091 determines whether the created SMS isin the inbox. If the created SMS is in the inbox, at stage 6220, eachentry's SMS ID is stored. If the created SMS is not in the inbox, theapplication module proceeds to completion, stage 6225.

Referring to FIG. 6D, at stage 6310, the second user application module2091 collects the Folder ID of the event. At stage 6315, the systemchecks whether the changed SMS is in the inbox. If the changed SMS is inthe inbox, the application module 2091 checks whether there are moreentries within the inbox. If not, the application module 2091 processesthe stored contact information, at stage 6325 (see FIG. 6E andassociated description). If there are more entries within the inbox, atstage 6330, the application module 2091 collects the next entry. Atstage 6335, the application module 2091 stores the first SMS and thenreturns to the SMS inbox and checks for the next available SMS. Once theentry is InStore, at stage 6340, the application module 2091 removes theentry from the Store and parses the contact information, at stage 6345.At stage 6350, the application module 2091 determines whether thecontact information is a CallerXchange SMS. If it is not, theapplication module 2091 returns to stage 6320. If the contactinformation is a CallerXchange SMS, the application module 2091 storesthe contact information, at stage 6325 (see FIG. 6E and associateddescription). Once the final SMS is processed, the application moduleproceeds to stage 6360.

Referring to FIG. 6E, at stage 6405, the second user application module2091 detects that the SMS Store has CallerXchange specific SMS messages.At stage 6410, the application module 2091 checks if this is an existingcontact within the second user phonebook module 2055 (see FIG. 6F andassociated description). At stage 6420, the second user applicationmodule 2091 displays a message. For example, one of two messages: “Addfirst user?” (second user phonebook module 2055) or “Update firstuser?,” is displayed, depending on whether the first user is alreadystored in the second user phonebook 2055. At stage 6425, if the seconduser selects “Add” or “Update”, then the first user contact entry isstored or updated in the second user phonebook module 2055 (see FIG. 6Gand associated description). If the new record is created or updatedsuccessfully, the second user application module 2091 displays amessage, such as “first user added to phonebook” or “first user contactdata updated.”

If the second user application module 2091 can not create the new entrywithin the second user phonebook module 2055, the phone displays a“phonebook full” message through the Show Dialog Proactive Command 3130.At stage 6420, if the second user selects “no,” then the second userapplication module 2091 removes the contact information from the store,at stage 6460, and removes the CallerXchange SMS at stage 6465. Thestore is checked for additional CallerXchange SMS messages that areavailable. At stage 6430, the second user is prompted “Send MyProfile tofirst user?” (see FIG. 5C and associated description). The second userapplication module 2091 checks “Is send enabled?” and “Check SendNecessary” (see FIG. 5F and associated description). The second usercontact information stored in the MyProfile Data File 2085 is packagedin a SMS message and sent to the first user, at stage 5145 (see FIG. 5Cand associated description). At stage 5135, the Last Number Dialed DataFile 2087, the Last Call Time Data File 2084 and the Last SMS Sent TimeData File 2088 are updated (see FIG. 6H and associated description). Atstages 6430 and 6435, if the second user prefers not to send MyProfileor if Send is not enabled, the second user application module 2091removes the contact information from the store at stage 6460 and removesthe CallerXchange SMS at stage 6465. The store is checked for additionalCallerXchange SMS messages available.

Referring to FIG. 6F, the SMS store processes contact information andthe second user application module 2091 checks existing contactinformation in the second user phonebook module 2055. At stage 6505, thesystem determines whether a contact exists. If a contact does not exist,the second user application module 2091 searches the second userphonebook module 2055 for the first name of the contact, at stage 6510.If the second user phonebook module 2055 matches the first name of morethan one contact in the phonebook, the last names (or surnames) arechecked for a name matching that of the contact. At stage 6525, if thelast name matches, the contact is saved in the phonebook and the seconduser application module 2091 asks the second user to Add/Update thecontact within the phonebook (see FIG. 6E and associated description).

Contact information can be inserted or updated in the second userphonebook module 2055. Referring to FIG. 6G, the second user selects“Add” or “Update” at stage 6425 in FIG. 6E. The first user contact entryis stored or updated in the second user phonebook module 2055. If thefirst user does not exist as a contact in the second user phonebookmodule 2055 and the second user adds the first user to the phonebook,then a new phonebook entry is created, at stage 6610. If the first useralready exists in the second user phonebook and the second user wants toupdate the first user's contact information, at stage 6615, the seconduser application module 2091 fetches a phonebook entry. If the newrecord is created or updated successfully, the second user applicationmodule 2091 displays a message, for example, “first user added tophonebook” or “first user contact data updated.” At stage 6625, theadded or updated contact information is saved and the second userapplication module 2091 returns to the Process Stored ContactInformation (see FIG. 6E and associated description). If the second userapplication module 2091 can not create the new entry within the seconduser phonebook module 2055, the phone displays a “phonebook full”message through the Show Dialog Proactive Command 3130.

Referring to FIG. 6H, once the second user application module 2091 hasgone through the Perform Send command (see stage 5145, in FIG. 6E andassociated description), it reaches second user update exchange log file2033, stage 5135. The second user application module 2091 checks therecord against the contact exchange database for a first user phonenumber, stage 6705. If the record does not exist at stage 6710, then arecord is created and the phone number is set at stage 6715. Oncecompleted, or if the record already exists, at stage 6720 theapplication module determines whether a call was the method ofcommunication. If “yes,” the second user exchange log file 2033 resetsthe last call time data file 2084 to the current date, at stage 6725. If“no,” the second user application module 2091 determines whether or notit was a SMS Send Update at stage 6730. If “yes,” the second userexchange log file 2033 resets the last SMS sent time data file 2088 to“today” at stage 6735. At stage 6740, the record is saved and the seconduser application module 2091 returns to the Process Stored Contact Infoprocess (see FIG. 6E and associated description).

In FIG. 7A, a method of manual application navigation is described. Whenthe first user selects to operate the application module 2090 within thefirst user phone 2010, the menu selection event 3160 is triggered toactivate the first user application module 2090.

Referring to FIG. 7B, a settings menu selection process 7010 is shown.At stage 7105, when the menu selection event 3160 is triggered, thefirst user application module 2090 shows the settings menu (see FIG. 7Cand associated description). At stage 7115, the first user can eitheropt to “cancel” and exit the menu or choose a manual send option 7120(see FIG. 7F and associated description).

Referring also to FIG. 7C, the settings menu allows the first user tochange the first user application module 2090 defaults. The settingsmenu can be accessed by the first user during the following processes:Send MyProfile after a call or SMS, Update MyProfile after a call orSMS, Add Caller to phonebook, Update Caller in phonebook, Manual Send toa new user, or Manual navigation to the phone applications. At stage7205, the first user has the following choices within the settings menu:a “Display Turn off Options Menu” at stage 7215, a “Display AboutMessages” at stage 7220, a “Display Edit MyProfile Menu” at stage 4125,a “Manual Send” at stage 7120 and a “Display Language Menu” at stage7235.

At stage 7240, the first user makes a choice and the first userapplication module 2090 triggers the related action. The turn-offoptions menu 7215 provides the ability to disable or enable the sendingand adding features. The disable send feature allows the first user toturn on/off the “Send MyProfile?” feature. If this featured is disabled,the first user is not be asked to send his or her contact information(stored in the first user MyProfile Data File 2035) after phone calls.The default value for the send feature is “enabled.” The disable addfeature allows the first user to turn on/off the “Add [CALLER] tophonebook?” message and feature. If this feature is disabled, the firstuser is not be asked to add a caller to the phonebook module 2015 if anapplication module 2090 SMS is received. The default value for the addfeature is “enabled.” The “About” function 7220 provides a briefdescription of the first user application module 2090 and the versioninformation to the first user (see FIG. 7I and associated description).The “About” function 7220 also displays the operation mode, a metricused to determine in what mode the handset is allowing the first userapplication module 2090 to operate.

The Edit MyProfile Option 4125 displays the Edit MyProfile menu (seeFIG. 4B and associated description). The “Language” function 7235 allowsthe first user to change the language of the first user applicationmodule 2090. The number and types of language options are determined bythe Mobile Operator, for example. The default language can be set by theoperator during implementation, coded into the first user applicationmodule 2090 or changed through an OTA campaign of the first userconfiguration data file 2039.

Referring to FIG. 7D, the first user application module 2090 displays amenu selection at stage 7405 with the following options: “Settings” (seeFIG. 7C and associated description), “Manual Send” (see FIG. 7E andassociated description), “Edit MyProfile” (see FIG. 4B and associateddescription) or “Show About” (see FIG. 7H and associated description).Once the User Event is complete, the application goes back to itsoriginal state and waits for the next User Event, SMS or Call Event.

Referring to FIG. 7E, at stage 7505, the application module 2090 checksif MyProfile data is ready. If data is not ready, the first userapplication module 2090 does not send MyProfile data. If the MyProfiledata is ready, the application asks the user for the destination numberat stage 7515, where the first user can either manually enter thedestination number (Get Input Proactive Command 3140) or pull the numberfrom the phonebook (see FIG. 7F and associated description), stage 7525.The first user is asked if he or she would like to send MyProfile to thesecond user and if “yes” the first user application module 2090 willPerform Send (see FIG. 5C and associated description). If the first userdoes not decide to send, the application returns to its original stateand waits for the next User Event, SMS or Call Event.

Referring to FIG. 7F, if the destination number of the contact alreadyexists in the first user phonebook module 2015, the application loadscontacts 7605 from the phonebook and displays contacts at stage 7610. Atstage 7615, the application waits for the first user to select a contactand then retrieves the record. If the contact information is missing adestination number, the application returns empty, stage 7630. If thecontact information is complete, the application returns the contactnumber at stage 7635. The application returns to the “Send?” stage 7530and waits for the first user response.

Referring to FIG. 7G, the first user chooses to view the settings menu(see FIG. 7C and associated description). The first user applicationmodule 2090 waits for the user input at stage 7710. The user can eitherselect: “Cancel/Back” which ends the current action, “OK/Save” which, atstage 7720, saves any changes made to the settings or “Change/Toggle”which allows first user to make any changes to the settings. If anychanges to the settings are made, the first user application module 2090waits for more user input before saving changes.

Referring to FIG. 7H, if the first user chooses “Show About” from themenu, the first user application module 2090 displays “About” dialog atstage 7805. The show dialog proactive command 3130 displays thefollowing: “Setup your profile once, and exchange it with friends afterphone calls and SMS messages. Contacts can be automatically insertedinto your phonebook.” If the user presses “Ok,” the first user is routedto the second “About” screen where “CallerXchange\nv2.0.3RS\copyrightOnePIN, Inc.\patents pending” is displayed.

Portions of the application of the invention can reside in the remoteserver 2003 and the exchanged information may also be stored in theremote database 2005 in addition to phonebook modules 2015 and 2055 forthe first user and the second user, respectively, to access theirinformation using the Internet. In this case, at the end of stage 4205listed in the Edit MyProfile process (see FIG. 4B and associateddescription), the first user enters a password for web access to thefirst user's web account. The second user is also asked to enter apassword for the second user's web account at the end of the EditMyProfile process. The MyProfile information is automatically createdfor the first user and the second user at the remote database 2005.Within each account, a database of contacts is created for both thefirst user and the second user. The contact databases are populated, forexample, using the process in FIG. 6E. A SMS message is created by thesecond user application module 2091 and sent to the remote server 2003.The remote server 2003 processes the SMS message and inserts to thesecond user's database of contacts within the remote database 2005. Theremote server 2003 processes the SMS message and updates the firstuser's corresponding information to the second user's database ofcontacts within the remote database 2005. The first user and the seconduser can access their database of contacts within the remote database2005 on their Personal Computer with an Internet connection usingpasswords and web services on remote server 2003.

The mobile operator can configure the application module 2090 usingremote server 2003 with a methodology such as an OTA update. In order toconfigure the application module 2090, the mobile operator can usecommunication protocols such as a SMS, MMS, email, BIP or USSD. Themobile operator can configure the dialing rules file to comply with thegeographic region. The operator can configure the mobile line detectionto be either On or Off. The operator can also configure the SMSparameters (both text and binary) and configure the alternate SMSC (SMSCenter) address to either On or Off. The operator can configure theapplication module 2090 to either allow or not allow (Yes/No) thesending of contact information to international numbers.

The methods and systems of embodiments of the present inventiondescribed above allow users to exchange business and personal contactinformation to other users over a mobile network. In other embodiments,businesses may use contact information systems of the present inventionto provide data exchange between the customers, vendors, or others. Inother embodiments, mobile operators may use the present invention toprovide a mobile yellow pages or white pages directory between thecustomers, vendors, merchants or others. Further, embodiments of theinvention describe the exchange of contact information. Otherinformation can be exchanged between the users, customers, vendors orothers. For example, information such as photos, ring tones, other audioor visual information, music files and other information can beexchanged via the apparatus and systems described herein.

Having thus described at least one illustrative embodiment of theinvention, various alterations, modifications and improvements willreadily occur to those skilled in the art. Such alterations,modifications and improvements are intended to be within the scope andspirit of the invention. Accordingly, the foregoing description is byway of example only and is not intended as limiting.

1. An information management system for operation over a network, thesystem comprising: a first mobile device having a first applicationmodule, the first mobile device operating over the network and incommunication with a second mobile device having a second applicationmodule; a first operating system residing on the first mobile deviceconfigured to detect a communication event between the first mobiledevice and the second mobile device; and an address book module residingon the second mobile device, wherein the first application module isconfigured to send information associated with the first mobile deviceto the second mobile device in association with a detection of thecommunication event.
 2. The information management system of claim 1,wherein the first mobile device is configured to prompt a first user toenter information for storage in the first application module of thefirst mobile device.
 3. The information management system of claim 1,wherein the second application module is triggered to permit insertionof information transmitted via the communication event into the addressbook module.
 4. The information management system of claim 1 wherein thefirst application module is configured to prompt the first mobile deviceto send information stored in the first mobile device to the secondmobile device.
 5. The information management system of claim 1 whereinthe second application module is configured to prompt a user of thesecond mobile device to insert the information associated with the firstmobile device into the address book module.
 6. The informationmanagement system of claim 1 wherein the first application module andthe second application module exchange information associated with afirst user.
 7. The information management system of claim 1 wherein thefirst application module is configured to detect a communication eventin at least one of the first mobile device or the second mobile device8. The information management system of claim 1 further comprising anaddress book module residing on the first mobile device.
 9. Theinformation management system of claim 1 wherein the application moduleis configured to determine a frequency of the communication between thefirst mobile device and the second mobile device.
 10. The informationmanagement system of claim 9 wherein when the frequency of thecommunication between the first mobile device and the second mobiledevice exceeds a threshold, the application module is configured to sendan updated information message to the second mobile device.
 11. Theinformation management system of claim 1 wherein the first applicationmodule is configured to update information stored in the first mobiledevice.
 12. The information management system of claim 11 wherein thefirst application module is configured to prompt a first user to sendthe updated information to the second mobile device for automaticinsertion into the address book module.
 13. The information managementsystem of claim 11 wherein the first application module is configured toautomatically provide updated information to contacts stored in thefirst mobile device.
 14. The information management system of claim 1wherein the first application module is configured to allow entry of apermission level for the information stored in the first mobile device.15. The information management system of claim 14 wherein the firstapplication module is configured to send information associated with thefirst mobile device that corresponds to the permission level to thesecond mobile device.
 16. The information management system of claim 14wherein the first application module is configured to store thepermission level that corresponds to the second mobile device.
 17. Theinformation management system of claim 16 wherein the first applicationmodule is configured to store a sent record to indicate a time of sentdata, a destination number and a permission level.